Algorithm Design: Greedy Algorithms: Huffman Codes